草庐IT

PHPUnit 和 CodeIgniter

全部标签

php - 使用 CodeIgniter 在子文件夹中路由 Controller

因为我想分离系统的前端和后端。我在Controller内创建了2个文件夹作为前端和后端下面是我的Controller文件夹的结构controller--frontend---store.php---processing.php---profile.php---authenticate.php---register.php--backend---authenticate.php---stats.php---users.php---property_manage.php---register.php我可以通过使用来访问这些功能frontend/store/addfrontend/store

php - 如何模拟使用 PHPUnit 实现 Iterator 接口(interface)的类?

我如何模拟实现Iterator的类的依赖项?接口(interface)是否稳健? 最佳答案 网上已经有一些解决这个问题的现有解决方案,但我看到的所有解决方案都有一个类似的弱点:它们依赖于->expects($this->at(n))。PHPUnit中的'expectsat'函数有一些奇怪的行为,因为计数器是针对模拟的每个方法调用的。这意味着,如果您在直接foreach之外对迭代器进行方法调用,则必须调整迭代器模拟。解决方案是创建一个包含基本迭代器数据(源数组和位置)的对象,并将其传递给returnCallback闭包。因为它是通过引

php - 如何模拟使用 PHPUnit 实现 Iterator 接口(interface)的类?

我如何模拟实现Iterator的类的依赖项?接口(interface)是否稳健? 最佳答案 网上已经有一些解决这个问题的现有解决方案,但我看到的所有解决方案都有一个类似的弱点:它们依赖于->expects($this->at(n))。PHPUnit中的'expectsat'函数有一些奇怪的行为,因为计数器是针对模拟的每个方法调用的。这意味着,如果您在直接foreach之外对迭代器进行方法调用,则必须调整迭代器模拟。解决方案是创建一个包含基本迭代器数据(源数组和位置)的对象,并将其传递给returnCallback闭包。因为它是通过引

php - 在 PHPUnit 中实现给定接口(interface)的模拟对象上的未定义方法?

我是单元测试和PHPUnit的新手。我需要一个mock,我可以完全控制它,实现ConfigurationInterface接口(interface)。测试对象是ReportEventParamConverter对象,测试必须检查我的对象和接口(interface)的交互。ReportEventParamConverter对象(此处简化):classReportEventParamConverterimplementsParamConverterInterface{/***@paramRequest$request*@paramConfigurationInterface$configu

php - 在 PHPUnit 中实现给定接口(interface)的模拟对象上的未定义方法?

我是单元测试和PHPUnit的新手。我需要一个mock,我可以完全控制它,实现ConfigurationInterface接口(interface)。测试对象是ReportEventParamConverter对象,测试必须检查我的对象和接口(interface)的交互。ReportEventParamConverter对象(此处简化):classReportEventParamConverterimplementsParamConverterInterface{/***@paramRequest$request*@paramConfigurationInterface$configu

php - 结合 Angularjs 和 CodeIgniter

我正在开发一个用CodeIgniter编写的现有网站,我们正在考虑将AngularJS用于一些需要大量前端功能的页面,但我们不想(一次(还))替换所有CodeIgniterView。所以我点击了一个由angular的路由器控制的链接,它由javascript处理,但下一个链接可能是应该由CodeIgniter框架处理的“正常”请求。是否有一些优雅的方式将这两种方法结合起来?我真的不介意一些额外的客户端开销,因为该站点尚未在生产环境中运行。 最佳答案 听起来您希望随着Angular应用程序的增长逐渐减少对CodeIgniter(CI)

php - 结合 Angularjs 和 CodeIgniter

我正在开发一个用CodeIgniter编写的现有网站,我们正在考虑将AngularJS用于一些需要大量前端功能的页面,但我们不想(一次(还))替换所有CodeIgniterView。所以我点击了一个由angular的路由器控制的链接,它由javascript处理,但下一个链接可能是应该由CodeIgniter框架处理的“正常”请求。是否有一些优雅的方式将这两种方法结合起来?我真的不介意一些额外的客户端开销,因为该站点尚未在生产环境中运行。 最佳答案 听起来您希望随着Angular应用程序的增长逐渐减少对CodeIgniter(CI)

php - 修改 PHPUnit Mocks 的 returnCallback() 中的对象

我想模拟一个类的方法并执行一个回调来修改作为参数给出的对象(使用PHP5.3和PHPUnit3.5.5)。假设我有以下类(class):classA{functionfoobar($object){doSomething();}}还有这个设置代码:$mock=$this->getMockBuilder('A')->getMock();$mock->expects($this->any())->method('foobar')->will($this->returnCallback(function($object){$object->property=something;}));由于某

php - 修改 PHPUnit Mocks 的 returnCallback() 中的对象

我想模拟一个类的方法并执行一个回调来修改作为参数给出的对象(使用PHP5.3和PHPUnit3.5.5)。假设我有以下类(class):classA{functionfoobar($object){doSomething();}}还有这个设置代码:$mock=$this->getMockBuilder('A')->getMock();$mock->expects($this->any())->method('foobar')->will($this->returnCallback(function($object){$object->property=something;}));由于某

php - 设置 PHPUnit Mock 后,我可以更改方法吗?

我试图在setUp中为所有被覆盖的方法创建一个具有默认值的模拟实例,然后在几个不同的测试中根据我正在测试的内容更改某些方法的返回值,而无需设置整个模拟。有办法做到这一点吗?这是我尝试过的方法,但是天真的方法不起作用。该方法仍然返回原始期望设置的值。第一次设置:$my_mock->expects($this->any())->method('one_of_many_methods')->will($this->returnValue(true));在另一个断言之前的另一个测试中:$my_mock->expects($this->any())->method('one_of_many_me